package com.liwalo.action;

import java.util.List;
import java.util.Map;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.lang3.StringUtils;

import com.liwalo.dao.CategoriaDAO;
import com.liwalo.dao.CiudadDAO;
import com.liwalo.dao.ContactoTiendaDAO;
import com.liwalo.dao.ProductoDAO;
import com.liwalo.dao.SubcategoriaDAO;
import com.liwalo.dao.TiendaDAO;
import com.liwalo.dao.TipoViaDAO;
import com.liwalo.entities.Categoria;
import com.liwalo.entities.Ciudad;
import com.liwalo.entities.ContactoTienda;
import com.liwalo.entities.Subcategoria;
import com.liwalo.entities.Tienda;
import com.liwalo.entities.TiendaProducto;
import com.liwalo.entities.TipoVia;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class ResultadoBusquedaCategoria extends ActionSupport {

	/**
	 * 
	 */
	private static final long serialVersionUID = 8716951427780324571L;
	
	private int tiendaId;
	private List<TiendaProducto> listadoTiendaProducto;
	private List<Categoria> listadoCategorias;
	private List<Subcategoria> listadosubCategorias;
	private Tienda tiendavo;
	private int categoriaid;
	private int subcategoriaid;
	private TipoVia tipoviavo;
	
	private int pagina;
	private int sizeList;
	
	@Override
	public String execute() throws Exception {
		 
		setPagina(1);
		return ajaxCall();	
	}
	
	
	public String ajaxCall() throws Exception {
		Map session = ActionContext.getContext().getSession();
		
		System.out.println(BeanUtils.describe(this));
		
		TiendaDAO tiendaDao=new TiendaDAO();
		TipoViaDAO tipoviaDao=new TipoViaDAO();
		CiudadDAO ciudadDao=new  CiudadDAO();
		ProductoDAO productoDao=new ProductoDAO();
		CategoriaDAO categoriaDao=new CategoriaDAO(); 

		categoriaid=getCategoriaid();
		
		TiendaProducto tpvo=new TiendaProducto();
		Categoria catvo= new Categoria();
		Subcategoria subcatvo= new Subcategoria();
		Ciudad ciudadvo=new Ciudad();
		
		
		tiendavo=new Tienda();
		tipoviavo=new TipoVia();
		tiendavo.setId(getTiendaId());
		
		catvo.setId(getCategoriaid());
		subcatvo.setId(getSubcategoriaid());
		
		tpvo.setCategoriaId(catvo);
		tpvo.setSubcategoriaId(subcatvo);
		tpvo.setTiendaId(tiendavo);
		tiendavo=tiendaDao.findById(getTiendaId());
		tipoviavo=tipoviaDao.findById(tiendavo.getTipoViaId().getId());
		ciudadvo=ciudadDao.findById(tiendavo.getCiudadId().getId());
		
		setListadoTiendaProducto(productoDao.listadoTodosProductos(tpvo,getPagina()));
		setSizeList(productoDao.listadoTodosProductosCount(tpvo, getPagina()));
		setListadoCategorias(categoriaDao.listadoCategoriasTienda(tpvo));
		
		tiendaId=getTiendaId();
		
		System.out.println("Pagina :"+pagina );

		return SUCCESS;
	}

	public int getTiendaId() {
		return tiendaId;
	}

	public void setTiendaId(int tiendaId) {
		this.tiendaId = tiendaId;
	}

	public List<TiendaProducto> getListadoTiendaProducto() {
		return listadoTiendaProducto;
	}

	public void setListadoTiendaProducto(List<TiendaProducto> listadoTiendaProducto) {
		this.listadoTiendaProducto = listadoTiendaProducto;
	}

	public Tienda getTiendavo() {
		return tiendavo;
	}

	public void setTiendavo(Tienda tiendavo) {
		this.tiendavo = tiendavo;
	}

	public List<Categoria> getListadoCategorias() {
		return listadoCategorias;
	}

	public void setListadoCategorias(List<Categoria> listadoCategorias) {
		this.listadoCategorias = listadoCategorias;
	}




	public List<Subcategoria> getListadosubCategorias() {
		return listadosubCategorias;
	}

	public void setListadosubCategorias(List<Subcategoria> listadosubCategorias) {
		this.listadosubCategorias = listadosubCategorias;
	}

	public int getSubcategoriaid() {
		return subcategoriaid;
	}

	public void setSubcategoriaid(int subcategoriaid) {
		this.subcategoriaid = subcategoriaid;
	}


	public int getPagina() {
		return pagina;
	}


	public void setPagina(int pagina) {
		this.pagina = pagina;
	}


	public int getSizeList() {
		return sizeList;
	}


	public void setSizeList(int sizeList) {
		this.sizeList = sizeList;
	}


	public int getCategoriaid() {
		return categoriaid;
	}


	public void setCategoriaid(int categoriaid) {
		this.categoriaid = categoriaid;
	}


	public TipoVia getTipoviavo() {
		return tipoviavo;
	}


	public void setTipoviavo(TipoVia tipoviavo) {
		this.tipoviavo = tipoviavo;
	}

}
